這次的實作主要就是凸顯Service的功能,畫面設計上會相對簡單許多,這次是利用Service來啟動另一個Activity,按下啟動鍵後,在Service中透過Thread延遲三秒,啟動Main2Activity。
首先,我們要先建立兩個畫面以及一個Service,第一個畫面只需要一個Button,也就是讓我們按下後啟動Service的按鈕。畫面如下:
接著是,啟動Service之後啟動Main2Activity的畫面,畫面成功出現也就代表成功了,只會用到TextView來告知成功。畫面如下:
接著我們要在MainActivity中對按鈕加入監聽事件,使用StartService啟動Service,從目前的Activity來啟動MyService元件,最後關閉Service。
再來,編寫MyService,使用Thread去執行耗時的工作,且使用Sleep()來延遲五秒,再來宣告Intent從MyService啟動Main2Activity,當Service啟動Activity則加入flag去定義新的Activity。最後的最後,利用上篇說到的使用START_NOT_STICKY完全結束Service。
執行畫面如下:
在最一開始按下按鈕。
接著,Service會啟動並用Toast顯示。
最後,成功執行後會在第二個畫面顯示成功了!